<?php

class Usuario extends CI_Controller {
    public function Usuario(){
        parent::__construct();
        parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
        $CI = & get_instance();
        $CI->config->load("facebook",TRUE);
        $config = $CI->config->item('facebook');
        $this->load->library('Facebook', $config);
    }

    function index() {
        if(!$this->session->userdata('id')){
            $this->login();
        }else{
            $this->home();
        }
        
    }
    
    function registro(){
        $this->load->model('majoribolModel');
        $dados['times']= $this->majoribolModel->buscarTimes();
        $this->load->view('usuario/registro', $dados);
    }
    
    function registrar(){
        $this->load->model('usuarioModel');
        
        $data = array(
           'nome' => $this->input->post('nome') ,
           'email' => $this->input->post('cemail') ,
           'senha' => md5($this->input->post('csenha')),
           'majoribol_times_id' => $this->input->post('time')
        );
        
        if(!$this->usuarioModel->testarEmail($this->input->post('cemail'))){

            if($this->usuarioModel->cadastrar($data)){
                $this->session->set_flashdata('mensagem', 'Cadastro criado com sucesso!');
            }else{
                $this->session->set_flashdata('erro', 'Houve uma falha no cadastro!');
            }
        }else{
            $this->session->set_flashdata('erro', 'Email já cadastrado');
        }
        
        
        redirect('usuario/login');
    }
    
    function login(){
        $this->load->model('usuarioModel');

        $params = array(
            'scope' => 'email',
            'redirect_uri' => site_url().'usuario/flogando'
        );
        
        if(!$this->session->userdata('id')){
            $data['url'] = $this->facebook->getLoginUrl($params);
            $this->load->model('majoribolModel');
            $data['times']= $this->majoribolModel->buscarTimes();
            $this->load->view('usuario/login', $data);
        }else{
            $this->load->view('usuario/home');
        }
    }
    function flogando(){
        $this->load->model('usuarioModel');
        // Get user's data and login or register
        $user = $this->facebook->api('/me');
        $usuario = $this->usuarioModel->testarEmail($user["email"]);
        if($usuario){
            $params = array( 'next' => site_url().'usuario/deslogar');
            $this->session->set_userdata('id', $usuario->id);
            $this->session->set_userdata('nome', $usuario->nome);
            $this->session->set_userdata('admin', $usuario->admin);
            //$this->session->set_userdata('foto', $usuario->foto);
            $this->session->set_userdata('email', $usuario->email);
            $this->session->set_userdata('time', $usuario->majoribol_times_id);
            $this->session->set_userdata('facebook', true);
            $this->session->set_userdata('deslogar', $this->facebook->getLogoutUrl($params));
            redirect('usuario/home');
        }else{
            $this->registraFacebook($user);
            $data = array(
                'nome' =>  $user["name"],
                'email' => $user["email"]
            );
            if($this->usuarioModel->cadastrar($data)){
                $this->session->set_flashdata('mensagem', 'Cadastro criado com sucesso!');
            }else{
                $this->session->set_flashdata('erro', 'Houve uma falha no cadastro!');
            }
        }
        redirect('usuario/home');
    }
    function logar(){
        $this->load->model('usuarioModel');
        
        $email = $this->input->post('email');
        $senha = md5($this->input->post('senha'));
        
        $usuario = $this->usuarioModel->testarEmail($email);
        
        if($usuario){
            if($this->usuarioModel->testarSenha($senha)){
                $this->session->set_userdata('id', $usuario->id);
                $this->session->set_userdata('nome', $usuario->nome);
                $this->session->set_userdata('admin', $usuario->admin);
                //$this->session->set_userdata('foto', $usuario->foto);
                $this->session->set_userdata('email', $usuario->email);
                $this->session->set_userdata('time', $usuario->majoribol_times_id);
                redirect('usuario/home');
                
            }else{
                $this->session->set_flashdata('erro', 'Senha inválida');
                redirect('usuario/login');
            }
        }else{
            $this->session->set_flashdata('erro', 'Email não encontrado');
            redirect('usuario/login');
        }
    }
    
    function deslogar(){
        $this->session->sess_destroy();
        redirect('usuario/login');
    }
    
    function home(){
        if(!$this->session->userdata('id')){
            redirect('usuario/login');
        }else{
            $this->load->view('usuario/home');
        }
    }
    
    function alteraPerfil(){
        $this->load->model('majoribolModel');
        $this->load->model('usuarioModel');
        $dados['times']= $this->majoribolModel->buscarTimes();
        $id = $this->session->userdata('id');
        $dados['usuario'] = $this->usuarioModel->buscarUsuario($id);
        
        $this->load->view('usuario/alterar', $dados);
    }
    
    function alterar(){
        $this->load->model('usuarioModel');
        
        $senha = md5($this->input->post('senha'));
        if ($this->usuarioModel->testarSenha($senha)){
            $data = array(
            'nome' => $this->input->post('nome') ,
            'email' => $this->input->post('email') ,
            'senha' => md5($this->input->post('senha')),
            'majoribol_times_id' => $this->input->post('time')
            );
        
       
            $this->usuarioModel->alterarPerfil($data);

            $email = $this->input->post('email');
            $senha = md5($this->input->post('senha'));

            $usuario = $this->usuarioModel->testarEmail($email);

            $this->session->set_userdata('id', $usuario->id);
            $this->session->set_userdata('nome', $usuario->nome);
            //$this->session->set_userdata('foto', $usuario->foto);
            $this->session->set_userdata('email', $usuario->email);
            $this->session->set_userdata('time', $usuario->majoribol_times_id);

            redirect('usuario/home');
        }else{
            $this->session->set_flashdata('erro', 'Senha incorreta!');
            redirect('usuario/alteraPerfil');
        }
    }    
}
